package packageBusiness;

import java.util.ArrayList;
import packageDataAccess.SyllabusSyllathequeData;
import packageException.*;
import packageModel.Syllabus;

/**
 *
 * @author Lionel & Julien
 */
public class RechercheManager {
    
    /**
     * Recherche tous les syllabus qui ont un libellé ou une description correspondant à la chaîne de 
     * caractère 'syllabus' dans la catégorie 'categorie'
     * 
     * @param syllabus
     * @param categorie
     * @return ArrayList<Syllabus>
     * @throws SyllabusException
     * @throws LangueException
     * @throws AuteurException
     * @throws CategorieException
     * @throws InvalideDonneesException
     * @throws DataException  
     */
    public ArrayList<Syllabus> SyllabusRecherche(String syllabus, String categorie) throws 
            SyllabusException, 
            LangueException, 
            AuteurException, 
            CategorieException, 
            InvalideDonneesException,
            DataException {
        if(categorie.equals("")) throw new InvalideDonneesException();
        SyllabusSyllathequeData bd_ss = new SyllabusSyllathequeData();
        return bd_ss.getSylBySearch(syllabus, categorie);
    }
    
    /**
     * Recherche tous les syllabus qui ont un libellé ou une description correspondant à la chaîne de
     * caractère 'syllabus' dans TOUTES les catégories
     * 
     * @param syllabus
     * @return ArrayList<Syllabus>
     * @throws SyllabusException
     * @throws LangueException
     * @throws AuteurException
     * @throws CategorieException
     * @throws InvalideDonneesException
     * @throws DataException  
     */
    public ArrayList<Syllabus> SyllabusRecherche(String syllabus) throws 
            SyllabusException, 
            LangueException, 
            AuteurException, 
            CategorieException, 
            InvalideDonneesException,
            DataException {
        SyllabusSyllathequeData bd_ss = new SyllabusSyllathequeData();
        return bd_ss.getSylBySearch(syllabus);
    }
}
